[INTW26] Implement Interview Scheduling Feature#263
Conversation
interviewed applicants for that group
| gridTemplateColumns: `${leftWidth ? `${leftWidth}px` : "1fr"} ${ | ||
| rightWidth ? `${rightWidth}px` : "1fr" | ||
| gridTemplateColumns: `${leftWidth ? `${leftWidth}fr` : "1fr"} ${ | ||
| rightWidth ? `${rightWidth}fr` : "1fr" |
There was a problem hiding this comment.
replaced px with fr such that component scales horizontally to parent
There was a problem hiding this comment.
@mxc-maggiechen what we thinking about this one, seems interesting
…Id=<interviewGroupId>`
| import { fetchGraphql } from "@utils/makegqlrequest"; | ||
| import { queries, mutations } from "graphql/queries"; | ||
|
|
||
| const InterviewGroupStatusEnum = { |
There was a problem hiding this comment.
Rename as this is not an enum (please don't use an enum either it's a typescript anti pattern)
There was a problem hiding this comment.
changed to InterviewGroupStatus
| gridTemplateColumns: `${leftWidth ? `${leftWidth}px` : "1fr"} ${ | ||
| rightWidth ? `${rightWidth}px` : "1fr" | ||
| gridTemplateColumns: `${leftWidth ? `${leftWidth}fr` : "1fr"} ${ | ||
| rightWidth ? `${rightWidth}fr` : "1fr" |
There was a problem hiding this comment.
@mxc-maggiechen what we thinking about this one, seems interesting
| @@ -0,0 +1,19 @@ | |||
| import { ReactElement } from "react"; | |||
There was a problem hiding this comment.
please name files in accordance with current codebase patterns (EditIcon.tsx)
There was a problem hiding this comment.
i think the icon files all follow the .icon.tsx naming pattern at least under components/icons/
| @@ -0,0 +1,19 @@ | |||
| import { ReactElement } from "react"; | |||
|
|
|||
| export const EditIcon = (): ReactElement => ( | |||
There was a problem hiding this comment.
you don't need to type the return type we can just have export const EditIcon = () => {}
| const [isEditing, setIsEditing] = useState(false); | ||
|
|
||
| const interviewGroupId = router.isReady | ||
| ? (router.query.interviewGroupId as string) |
There was a problem hiding this comment.
why we using type assertions?
There was a problem hiding this comment.
i think nextjs types router.query.interviewGroupId as string | string[] | undefined
moved type narrowing logic to ternary
|
|
||
| // TODO: handle error state (e.g. show inline error message if a fetch fails) | ||
| // // once the codebase has an error handler | ||
| useEffect(() => { |
There was a problem hiding this comment.
lets see if we can figure out a way to not use a use effect here ....
There was a problem hiding this comment.
are you suggesting getServerSideProps
Notion ticket link
Implement Interview Scheduling Feature
Implementation description
/interview-groups?interviewGroupId=<interviewGroupId>using the existingSplitPageLayout.tsxcomponentupdateInterviewGroupsetting input scheduling link and status to "Ready for Invite"getInterviewersByGroupIdgetInterviewedApplicantsByGroupIdSteps to test
INTW26-interview-scheduling-featureand start the backend withdocker compose upthen run migrations withdocker exec recruitment_tools_backend node migrate uplocalhost:5000/graphqlcall the following mutator and copy one of the returns groupIdsnpm run devlocalhost:3000/admin, then navigate tolocalhost:3000/interview-groups?interviewGroupId=<copied_group_id>What should reviewers focus on?
Checklist